#ifndef TestVarTable_h
#define TestVarTable_h

#include <vector>
#include <cppunit/extensions/HelperMacros.h>
#include "VarTable.h"
#include "Type.h"

class VarTableTest : public CPPUNIT_NS::TestFixture 
{
	Type::List::Name validNameInput, invalidNameInput, nonExistNameInput;
	Type::List::Var expectedIndexList, invalidIndexInput, nonExistIndexInput;

	VarTable varTb;
	std::string msg;

	CPPUNIT_TEST_SUITE( VarTableTest );
	CPPUNIT_TEST( testInsert );
	CPPUNIT_TEST( testGetIndices );
	CPPUNIT_TEST( testGetNames );
	CPPUNIT_TEST( testIsExists );
	CPPUNIT_TEST_SUITE_END();
private:
	void testInsert(Type::List::Name, Type::List::Proc, bool, std::string);
	void testGetIndices(Type::List::Name, bool, Type::List::Proc, bool, std::string);
	void testGetNames(Type::List::Proc, Type::List::Name, bool, std::string);
	void testIsExists(Type::List::Name, Type::List::Proc, bool, std::string);
public:
	void setUp();
	void tearDown();

	void testInsert();
	void testGetIndices();
	void testGetNames();
	void testIsExists();
};
#endif